/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.beans;

//import java.sql.Connection;
//import java.sql.PreparedStatement;
//import java.sql.ResultSet;
//import com.mysql.jdbc.Connection;
//import com.mysql.jdbc.PreparedStatement;
import com.util.Conectar;
import com.util.Utils;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.naming.NamingException;

/**
 *
 * @author victor
 */
public class Perfil {

    private String id;
    private String nExp;
    private String orgContrata;
    private String objetoContra;

    public String getObjetoContra() {
        if (objetoContra == null) {
            return "";
        } else {
            if (objetoContra.length() > 298) {
                return objetoContra.substring(0, 298);
            } else {
                return objetoContra;
            }
        }
    }

    public void setObjetoContra(String objetoContra) {
        this.objetoContra = objetoContra;
    }
    private String presuTipoLi;
    private String duracionCont;
    private String bOP;
    private String bOE;
    private String dOCE;
    private String iniLici;
    private String limLici;
    private String actoAper;
    private String resultAper;
    private String fAdjuProvi;
    private String AcuAdjuProvi;
    private String fAdjuDefi;
    private String acuAdjuDefi;
    private String clauEcoAdm;
    private String pliePresTec;
    private String masInfo;
    private boolean encontrado;
    private String fileResultAper;
    private String fileAcuAdjuProvi;
    private String fileAcuAdjuDefi;
    private String fileClauEcoAdm;
    private String filePliePresTec;
    private String fileProyecto;
    private String proyecto;
    private String fCreacion;
    private String fModificacion;
    private String anio;

    public String getAnio() {
        return anio;
    }

    public void setAnio(String anio) {
        this.anio = anio;
    }

    public String getFCreacion() {
        if(fCreacion==null){
            return "";
        }
        return fCreacion;
    }

    public void setFCreacion(String fCreacion) {
        this.fCreacion = fCreacion;
    }

    public String getFModificacion() {
        if(fModificacion==null){
            return "";
        }
        return fModificacion;
    }

    public void setFModificacion(String fModificacion) {
        this.fModificacion = fModificacion;
    }

    public String getFileProyecto() {
        if(fileProyecto==null){
            return "";
        }
        return fileProyecto;
    }

    public void setFileProyecto(String fileProyecto) {
        this.fileProyecto = fileProyecto;
    }

    public String getProyecto() {
        if(proyecto==null){
            return "";
        }
        return proyecto;
    }

    public void setProyecto(String proyecto) {
        this.proyecto = proyecto;
    }

    public String getFileAcuAdjuDefi() {
        if (fileAcuAdjuDefi == null) {
            fileAcuAdjuDefi = "";
        }
        return fileAcuAdjuDefi;
    }

    public void setFileAcuAdjuDefi(String fileAcuAdjuDefi) {
        this.fileAcuAdjuDefi = fileAcuAdjuDefi;
    }

    public String getFileAcuAdjuProvi() {
        if (fileAcuAdjuProvi == null) {
            fileAcuAdjuProvi = "";
        }
        return fileAcuAdjuProvi;
    }

    public void setFileAcuAdjuProvi(String fileAcuAdjuProvi) {
        this.fileAcuAdjuProvi = fileAcuAdjuProvi;
    }

    public String getFileClauEcoAdm() {
        if (fileClauEcoAdm == null) {
            fileClauEcoAdm = "";
        }
        return fileClauEcoAdm;
    }

    public void setFileClauEcoAdm(String fileClauEcoAdm) {
        this.fileClauEcoAdm = fileClauEcoAdm;
    }

    public String getFilePliePresTec() {
        if (filePliePresTec == null) {
            filePliePresTec = "";
        }
        return filePliePresTec;
    }

    public void setFilePliePresTec(String filePliePresTec) {
        this.filePliePresTec = filePliePresTec;
    }

    public String getFileResultAper() {
        if (fileResultAper == null) {
            fileResultAper = "";
        }
        return fileResultAper;
    }

    public void setFileResultAper(String fileResultAper) {
        this.fileResultAper = fileResultAper;
    }

    public boolean isEncontrado() {
        return encontrado;
    }

    public void setEncontrado(boolean encontrado) {
        this.encontrado = encontrado;
    }

    public String getAcuAdjuProvi() {
        if (AcuAdjuProvi == null) {
            return "";
        } else {
            return AcuAdjuProvi;
        }
    }

    public void setAcuAdjuProvi(String AcuAdjuProvi) {
        this.AcuAdjuProvi = AcuAdjuProvi;
    }

    public String getActoAper() {
        if (actoAper == null) {
            return "";
        } else {
            return actoAper;
        }
    }

    public void setActoAper(String actoAper) {
        this.actoAper = actoAper;
    }

    public String getAcuAdjuDefi() {
        if (acuAdjuDefi == null) {
            return "";
        } else {
            return acuAdjuDefi;
        }
    }

    public void setAcuAdjuDefi(String acuAdjuDefi) {
        this.acuAdjuDefi = acuAdjuDefi;
    }

    public String getBOE() {
        if (bOE == null) {
            return "";
        } else {
            return bOE;
        }
    }

    public void setBOE(String bOE) {
        this.bOE = bOE;
    }

    public String getBOP() {
        if (bOP == null) {
            return "";
        } else {
            return bOP;
        }
    }

    public void setBOP(String bOP) {
        this.bOP = bOP;
    }

    public String getClauEcoAdm() {
        if (clauEcoAdm == null) {
            return "";
        } else {
            return clauEcoAdm;
        }
    }

    public void setClauEcoAdm(String clauEcoAdm) {
        this.clauEcoAdm = clauEcoAdm;
    }

    public String getDOCE() {
        if (dOCE == null) {
            return "";
        } else {
            return dOCE;
        }
    }

    public void setDOCE(String dOCE) {
        this.dOCE = dOCE;
    }

    public String getDuracionCont() {
        if (duracionCont == null) {
            return "";
        } else {
            return duracionCont;
        }
    }

    public void setDuracionCont(String duracionCont) {
        this.duracionCont = duracionCont;
    }

    public String getFAdjuDefi() {
        if (fAdjuDefi == null) {
            return "";
        } else {
            return fAdjuDefi;
        }
    }

    public void setFAdjuDefi(String fAdjuDefi) {
        this.fAdjuDefi = fAdjuDefi;
    }

    public String getFAdjuProvi() {
        if (fAdjuProvi == null) {
            return "";
        } else {
            return fAdjuProvi;
        }
    }

    public void setFAdjuProvi(String fAdjuProvi) {
        this.fAdjuProvi = fAdjuProvi;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getIniLici() {
        if (iniLici == null) {
            return "";
        } else {
            return iniLici;
        }
    }

    public void setIniLici(String iniLici) {
        this.iniLici = iniLici;
    }

    public String getLimLici() {
        if (limLici == null) {
            return "";
        } else {
            return limLici;
        }
    }

    public void setLimLici(String limLici) {
        this.limLici = limLici;
    }

    public String getMasInfo() {
        if (masInfo == null) {
            return "";
        } else {
            return masInfo;
        }
    }

    public void setMasInfo(String masInfo) {
        this.masInfo = masInfo;
    }

    public String getNExp() {
        return nExp;
    }

    public void setNExp(String nExp) {
        this.nExp = nExp;
    }

    public String getOrgContrata() {
        if (orgContrata == null) {
            return "";
        } else {

            return orgContrata;

        }
    }

    public void setOrgContrata(String orgContrata) {
        this.orgContrata = orgContrata;
    }

    public String getPliePresTec() {
        if (pliePresTec == null) {
            return "";
        } else {
            return pliePresTec;
        }
    }

    public void setPliePresTec(String pliePresTec) {
        this.pliePresTec = pliePresTec;
    }

    public String getPresuTipoLi() {
        if (presuTipoLi == null) {
            return "";
        } else {
            if (presuTipoLi.length() > 298) {
                return presuTipoLi.substring(0, 298);
            } else {
                return presuTipoLi;
            }
        }
    }

    public void setPresuTipoLi(String presuTipoLi) {
        this.presuTipoLi = presuTipoLi;
    }

    public String getResultAper() {
        if (resultAper == null) {
            return "";
        } else {
            return resultAper;
        }
    }

    public void setResultAper(String resultAper) {
        this.resultAper = resultAper;
    }

    public void consultaPerfil(String id) {
        Connection conexion;
        try {
            conexion = Conectar.getConnection();

            String selectCustomerStr = "SELECT * FROM tperfilcontratante " +
                    "WHERE tperfilcontratante.Id = ?";
            PreparedStatement selectStatement = null;
            selectStatement = (PreparedStatement) conexion.prepareStatement(selectCustomerStr);
            //System.out.println("Id en la consulta: " + id);
            selectStatement.setString(1, id);
            ResultSet rs = selectStatement.executeQuery();

            String aux = "";
            if (rs.next()) {
                setId(id);
                setNExp(rs.getString(2));
                setOrgContrata(rs.getString(3));
                setObjetoContra(rs.getString(4));
                setPresuTipoLi(rs.getString(5));
                setDuracionCont(rs.getString(6));

                aux = Utils.fecha(rs.getString(7));
                setBOP(aux);

                aux = Utils.fecha(rs.getString(8));
                setBOE(aux);

                aux = Utils.fecha(rs.getString(9));
                setDOCE(aux);

                aux = Utils.fecha(rs.getString(10));
                setIniLici(aux);

                aux = Utils.fecha(rs.getString(11));
                setLimLici(aux);

                aux = Utils.fecha(rs.getString(12));
                setActoAper(aux);

                setResultAper(rs.getString(13));

                aux = Utils.fecha(rs.getString(14));
                setFAdjuProvi(aux);

                setAcuAdjuProvi(rs.getString(15));

                aux = Utils.fecha(rs.getString(16));
                setFAdjuDefi(aux);
                setAcuAdjuDefi(rs.getString(17));
                setClauEcoAdm(rs.getString(18));
                setPliePresTec(rs.getString(19));
                setMasInfo(rs.getString(20));

                setFileResultAper(rs.getString(21));
                setFileAcuAdjuProvi(rs.getString(22));
                setFileAcuAdjuDefi(rs.getString(23));
                setFileClauEcoAdm(rs.getString(24));
                setFilePliePresTec(rs.getString(25));

                setProyecto(rs.getString(26));
                setFileProyecto(rs.getString(27));

                aux = Utils.fecha(rs.getString(28));
                setFCreacion(aux);

                aux = Utils.fecha(rs.getString(29));
                setFModificacion(aux);
                setAnio(rs.getString("anio"));
                System.out.println("FC: "+this.getFCreacion());
                System.out.println("FM: "+this.getFModificacion());
                setEncontrado(true);
            } else {
                setEncontrado(false);
            }
            rs.close();
            conexion.close();
            System.out.println("se ha ejecutado la consulta1");
        } catch (NamingException ex) {
            ex.printStackTrace();
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
    }

    public void guardar() {
        Connection conexion;
        try {
            conexion = Conectar.getConnection();
            System.out.println("Fecha Mysql: " + Utils.fechaParaMysql(this.getBOP()));
            String updateSQL = "UPDATE tperfilcontratante SET " +
                    " OrgContrata='" + this.getOrgContrata() + "'" +
                    ",ObjetoContrata='" + this.getObjetoContra() + "'" +
                    ",PresuTipoLi='" + this.getPresuTipoLi() + "'" +
                    ",FModificacion='" + Utils.fechaParaMysql(Utils.fechaActualString()) + "'" +
                    ",DuracionContra='" + this.getDuracionCont() + "'";
            if (!this.getBOP().equalsIgnoreCase("")) {
                updateSQL += ",BOP='" + Utils.fechaParaMysql(this.getBOP()) + "'";
            }
            if (!this.getBOE().equalsIgnoreCase("")) {
                updateSQL += ",BOE='" + Utils.fechaParaMysql(this.getBOE()) + "'";
            }
            if (!this.getDOCE().equalsIgnoreCase("")) {
                updateSQL += ",DOCE='" + Utils.fechaParaMysql(this.getDOCE()) + "'";
            }
            if (!this.getIniLici().equalsIgnoreCase("")) {
                updateSQL += ",IniLici='" + Utils.fechaParaMysql(this.getIniLici()) + "'";
            }
            if (!this.getLimLici().equalsIgnoreCase("")) {
                updateSQL += ",LimLici='" + Utils.fechaParaMysql(this.getLimLici()) + "'";
            }
            if (!this.getActoAper().equalsIgnoreCase("")) {
                updateSQL += " ,ActoAper='" + Utils.fechaParaMysql(this.getActoAper()) + "'";
            }
            updateSQL += " ,ResulAper='" + this.getResultAper() + "'";
            if (!this.getFAdjuProvi().equalsIgnoreCase("")) {
                updateSQL += ",FAdjuProvi='" + Utils.fechaParaMysql(this.getFAdjuProvi()) + "'";
            }
            updateSQL += ",AcuAdjuProvi='" + this.getAcuAdjuProvi() + "'";
            if (!this.getFAdjuDefi().equalsIgnoreCase("")) {
                updateSQL += ",FAdjuDefi='" + Utils.fechaParaMysql(this.getFAdjuDefi()) + "'";
            }
            updateSQL += ",AcuAdjuDefi='" + this.getAcuAdjuDefi() + "'" +
                    ",ClauEcoAdm='" + this.getClauEcoAdm() + "'" +
                    ",PliePresTec='" + this.getPliePresTec() + "'" +
                    ",Proyecto='" + this.getProyecto() + "'" +
                    ",MasInfo='" + this.getMasInfo() + "'";
            if (!this.getFileResultAper().equalsIgnoreCase("")) {
                updateSQL += ",FileResulAper='" + this.getFileResultAper() + "'";
            }
            if (!this.getFileProyecto().equalsIgnoreCase("")) {
                updateSQL += ",FileProyecto='" + this.getFileProyecto() + "'";
            }
            if (!this.getFileAcuAdjuProvi().equalsIgnoreCase("")) {
                updateSQL += ",FileAcuAdjuProvi='" + this.getFileAcuAdjuProvi() + "'";
            }
            if (!this.getFileAcuAdjuDefi().equalsIgnoreCase("")) {
                updateSQL += ",FileAcuAdjuDefi='" + this.getFileAcuAdjuDefi() + "'";
            }
            if (!this.getFileClauEcoAdm().equalsIgnoreCase("")) {
                updateSQL += ",FileClauEcoAdm='" + this.getFileClauEcoAdm() + "'";
            }
            if (!this.getFilePliePresTec().equalsIgnoreCase("")) {
                updateSQL += ",FilePliePresTec='" + this.getFilePliePresTec() + "'";
            }

            updateSQL += " WHERE tperfilcontratante.Id = '" + id + "'";
            PreparedStatement updateStatement = null;
            updateStatement = (PreparedStatement) conexion.prepareStatement(updateSQL);
            System.out.println("SQL: " + updateStatement);
            System.out.println("Id en la actualizacion: " + id);
            //selectStatement.setString(1, id);
            updateStatement.executeUpdate();
            //ResultSet rs = selectStatement.executeQuery();
            System.out.println("se ha ejecutado la actualizacion");

            //rs.close();
            conexion.close();
        } catch (NamingException ex) {
            ex.printStackTrace();
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
    }
public void hazHistorica(){
    hacerHistorica(true);
}
public void vuelvePublica(){
    hacerHistorica(false);
}
private void hacerHistorica(boolean historica) {
        Connection conexion;
        String his="";
        if(historica){
            his="SI";
        }else{
            his="NO";
        }
        try {
            conexion = Conectar.getConnection();
            //System.out.println("Fecha Mysql: " + Utils.fechaParaMysql(this.getBOP()));
            String updateSQL = "UPDATE tperfilcontratante SET historico=? WHERE tperfilcontratante.Id = ?";
            PreparedStatement updateStatement = null;
            updateStatement = (PreparedStatement) conexion.prepareStatement(updateSQL);
            updateStatement.setString(2, id);
            updateStatement.setString(1, his);

            //System.out.println("SQL: " + updateStatement);
            //System.out.println("Id en la actualizacion: " + id);
            //selectStatement.setString(1, id);
            updateStatement.executeUpdate();
            //ResultSet rs = selectStatement.executeQuery();
            System.out.println("se ha ejecutado la actualizacion");

            //rs.close();
            conexion.close();
        } catch (NamingException ex) {
            ex.printStackTrace();
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
    }
    /**
     * Da de alta el perfil en el que estemos.
     */
    public void crear() {
        Connection conexion;
        try {
            conexion = Conectar.getConnection();

            String updateSQL = "INSERT INTO tperfilcontratante (NExp, OrgContrata, ObjetoContrata, PresuTipoLi, DuracionContra, BOP, BOE, DOCE, IniLici, LimLici, ActoAper, ResulAper, FAdjuProvi, AcuAdjuProvi, FAdjuDefi, AcuAdjuDefi, ClauEcoAdm, PliePresTec, MasInfo, FileResulAper,FileAcuAdjuProvi,FileAcuAdjuDefi,FileClauEcoAdm,FilePliePresTec,Proyecto,FileProyecto,FCreacion,anio) VALUES " +
                    "('" + this.getNExp() + "'" +
                    ",'" + this.getOrgContrata() + "'" +
                    ",'" + this.getObjetoContra() + "'" +
                    ",'" + this.getPresuTipoLi() + "'" +
                    ",'" + this.getDuracionCont() + "'";
            if (!this.getBOP().equalsIgnoreCase("")) {
                updateSQL += ",'" + Utils.fechaParaMysql(this.getBOP()) + "'";
            } else {
                updateSQL += ",NULL";
            }
            if (!this.getBOE().equalsIgnoreCase("")) {
                updateSQL += ",'" + Utils.fechaParaMysql(this.getBOE()) + "'";
            } else {
                updateSQL += ",NULL";
            }
            if (!this.getDOCE().equalsIgnoreCase("")) {
                updateSQL += ",'" + Utils.fechaParaMysql(this.getDOCE()) + "'";
            } else {
                updateSQL += ",NULL";
            }
            if (!this.getIniLici().equalsIgnoreCase("")) {
                updateSQL += ",'" + Utils.fechaParaMysql(this.getIniLici()) + "'";
            } else {
                updateSQL += ",NULL";
            }
            if (!this.getLimLici().equalsIgnoreCase("")) {
                updateSQL += ",'" + Utils.fechaParaMysql(this.getLimLici()) + "'";
            } else {
                updateSQL += ",NULL";
            }
            if (!this.getActoAper().equalsIgnoreCase("")) {
                updateSQL += " ,'" + Utils.fechaParaMysql(this.getActoAper()) + "'";
            } else {
                updateSQL += ",NULL";
            }
            updateSQL += " ,'" + this.getResultAper() + "'";
            if (!this.getFAdjuProvi().equalsIgnoreCase("")) {
                updateSQL += ",'" + Utils.fechaParaMysql(this.getFAdjuProvi()) + "'";
            } else {
                updateSQL += ",NULL";
            }
            updateSQL += ",'" + this.getAcuAdjuProvi() + "'";
            if (!this.getFAdjuDefi().equalsIgnoreCase("")) {
                updateSQL += ",'" + Utils.fechaParaMysql(this.getFAdjuDefi()) + "'";
            } else {
                updateSQL += ",NULL";
            }

            updateSQL += ",'" + this.getAcuAdjuDefi() + "'" +
                    ",'" + this.getClauEcoAdm() + "'" +
                    ",'" + this.getPliePresTec() + "'" +
                    ",'" + this.getMasInfo() + "'" +
                    ",'" + this.getFileResultAper() + "'" +
                    ",'" + this.getFileAcuAdjuProvi() + "'" +
                    ",'" + this.getFileAcuAdjuDefi() + "'" +
                    ",'" + this.getFileClauEcoAdm() + "'" +
                    ",'" + this.getFilePliePresTec() + "'" +
                    ",'" + this.getProyecto() + "'" +
                    ",'" + this.getFileProyecto() + "'" +
                    ",'" + Utils.fechaParaMysql(Utils.fechaActualString()) + "'" +
                    ",'" + this.getAnio() + "'" +
                    ")";


            PreparedStatement updateStatement = null;
            updateStatement = (PreparedStatement) conexion.prepareStatement(updateSQL);
            System.out.println(updateSQL);
            updateStatement.executeUpdate();

            //rs.close();
            conexion.close();
        } catch (NamingException ex) {
            ex.printStackTrace();
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
    }

    public void eliminar() {
        try {
            Connection conexion;

            conexion = Conectar.getConnection();
            String updateSQL = "DELETE FROM tperfilcontratante where id='" + id + "'";

            PreparedStatement updateStatement = null;
            updateStatement = (PreparedStatement) conexion.prepareStatement(updateSQL);

            updateStatement.execute();


            conexion.close();
        } catch (NamingException ex) {
            ex.printStackTrace();
        } catch (SQLException ex) {
            ex.printStackTrace();
        }

    }
}
